package zhongbo.java.air.dictionary.service;

import zhongbo.java.air.common.vo.PageVo;
import zhongbo.java.air.dictionary.model.entities.AirCraft;

/**
 * 说明：
 * 飞机信息相关服务
 *
 * @author 钟波dellNotebook
 * @since 2025年03月31日 星期一 08:28:57
 */
public interface IAirCraftService {

    // 增删改查,和支持指定字段排序的分页功能

    /**
     * 保存飞机信息到数据库
     *
     * @param airCraft 飞机信息
     * @return 返回保存的飞机信息
     */
    AirCraft saveAirCraft(AirCraft airCraft);

    /**
     * 根据id删除飞机信息
     *
     * @param id id
     * @return 被删除的飞机id
     */
    String delAirCraft(String id);

    /**
     * 修改飞机信息
     *
     * @param airCraft 前端传递过来的修改信息
     * @return 修改后的飞机信息
     */
    AirCraft modifyAirCraft(AirCraft airCraft);

    /**
     * 根据飞机id查询飞机信息
     *
     * @param id 飞机id
     * @return 飞机信息
     */
    AirCraft queryById(String id);

    /**
     * 分页查询飞机信息
     *
     * @param pageNumber   页码
     * @param pageSize     每页记录数
     * @param airline      所属航司
     * @param aircraftType 飞机类型
     * @param status       状态
     * @param orderBy      排序字段
     * @param orderType    排序类型，true升序 false降序
     * @return 飞机分页信息
     */
    PageVo<AirCraft> pageAircraft(Integer pageNumber, Integer pageSize, String airline,
                                  String aircraftType, String status, String orderBy, Boolean orderType);

    /**
     * 根据 icaoCode查询飞机信息
     *
     * @param code icaoCode
     * @return 飞机信息
     */
    AirCraft queryByIcaoCode(String code);

}
